﻿//#include<iostream>
//using namespace std;
//const int N = 1e5 + 10;
//int main()
//{
//	int ne[N];
//	int num = 0;
//	int h;
//	cin >> num;
//	for (int i = 1; i <= num; i++)
//	{
//		
//		cin >> ne[i];
//	}
//	cin >> h;
//		for (int j = h; j; j = ne[j])
//		{
//			cout << j << " ";
//		}
//	return 0;
//}
#include <iostream>
using namespace std;
//const int N = 1e5 + 10, M = 1e6 + 10;
//// 链表
//int h, id, e[N], ne[N];
//int mp[M]; // mp[i] ⽤来标记 i 这个元素存在什么位置
//int main()
//{
//	int q; cin >> q;
//	// 初始化
//	id++;
//	e[id] = 1;
//	mp[1] = id;
//	while (q--)
//	{
//		int op, x, y;
//		cin >> op >> x;
//		int p = mp[x]; // x 存的位置
//		if (op == 1) // x 后⾯插⼊
//		{
//			cin >> y;
//			id++;
//			e[id] = y;
//			ne[id] = ne[p];
//			ne[p] = id;
//			mp[y] = id; // 标记 y 这个元素存的位置
//		}
//		
//		else if (op == 2) // 查询 x 后⾯的元素
//		{
//			cout << e[ne[p]] << endl;
//		}
//		else // 删除 x 后⾯的元素
//		{
//			ne[p] = ne[ne[p]];
//		}
//	}
//	return 0;
//}

const int N = 1e5 + 10;
